<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      const xhr = new XMLHttpRequest();
      xhr.open("POST", "http://127.0.0.1:3000/data");
      xhr.responseType = "json";
      xhr.onload = function () {
        console.log(xhr.response);
      };
      const fd = new FormData(); //new Map()
      fd.append("username", "lili");
      fd.append("age", "20");
      fd.append("gender", "girl");

      xhr.timeout = 0; // 永不超时

      // 1.1 客户端->服务端（上传）
      xhr.upload.onloadstart = function () {
        console.log("loadstart 上传开始");
      };
      // 1.2 客户端->服务端（上传）
      xhr.upload.onprogress = function (e) {
        console.log(e.loaded, e.total);
      };
      // 1.3 客户端->服务端（上传）
      xhr.upload.onload = function () {
        console.log("loadstart 上传成功");
      };
      // 1.3 客户端->服务端（上传）
      xhr.upload.onloadend = function () {
        console.log("loadstart 上传结束");
      };

      xhr.upload.onerror = function () {
        console.log("onerror 网络错误");
      };

      xhr.upload.ontimeout = function () {
        console.log("ontimeout 上传超时");
      };

      // 2. 服务端->客户端（下载）
      // xhr.onprogress = function () {};

      // 发送请求
      xhr.send(fd);
    </script>
  </body>
</html>
